Relative Searcher, v.2.5
by Griffin Knodle, a.k.a. Jair, 10/25/98
E-mail:gknodle@trinity.edu
http://fly.to/vale


WHAT IT IS
-------------------
Relative Searcher is a program you can use to find text blocks, pointer tables, or other things in unfamiliar ROMs. Instead of searching for exact known values, Relative Searcher searches for known changes from one byte to the next. It also lets you skip over bytes if you have no idea how they relate to the rest of your search string.

In this version, a couple of subtle bugs have been fixed, and it works faster.


WHAT YOU'LL NEED
-------------------
Something to search.
You may also want to make a numbered table of the alphabet.


WHAT TO DO
-------------------
Enter the file to search. Now start entering search values. Hit ENTER when you're done. Enter an asterisk (*) to skip over an unknown byte.

For example, if a game's text has the word "battle" in it, search for this string:
1
0
19
19
11
4

Relative Searcher will look for a change of -1 (b to a), followed by +19 (a to t), 0 (t to t) and so on. This will find "battle" no matter what value the alphabet starts with (as long as it uses ordinary alphabetical order).  This is useful if you don't know where the letters are in a ROM's character set.

Note that because it's a relative search, the starting value doesn't matter.  You can also find "battle" with this string, for example:
3
2
21
21
13
6

Now, if you need to search for something like "hey hey", you'll have a problem -- you can't just guess how the space relates to the letters. Use an asterisk to skip that byte:
7
4
24
*
7
4
24

This isn't just for finding text; it can find anything you can figure out relative values for.  For example, Radia has a table of compressed words in it.  I wanted to find the pointer table for it. By looking at the words, I could figure out the starting address of each one. Now, the problem is, pointer addresses are two bytes long, and I had no idea how the high-order byte related to the ones I had found. So I searched for:
11
*
16
*
20
*
24
*
28
*
32


TERMS OF USE
-------------------
This program is distributed with its source code. You may use, distribute, and modify it freely. Only two restrictions: These terms of use must stay the same, and you must always include the source code with the program.  Oh, and I'd appreciate it if you credit me as the original author.


DISCLAIMER
-------------------
All games and systems mentioned are copyright their respective companies.  I am not responsible for any damage you may cause to your computer or software by using this program. Owning a ROM is illegal unless you already own the cartridge. If there are runners on first and second and fewer than two outs, a fly ball hit to an infielder shall be ruled "caught" even if the infielder drops it. I think that about covers everything.

